Current technologies of network traffic enable transmitting of data between computer devices at a data rate of more than one gigabyte per second. However, in existing systems for content filtering and load-balancing, all the network traffic travels through a single input/output port, thus creating a single point of failure and negatively impacting performance. While inspecting and filtering traffic, such systems may divert the traffic to one of a plurality of servers according to their load. These systems usually work with transmission control protocol (TCP) and Internet protocol (IP) and follow the communication state for each session in order to achieve acceptable content filtering and load-balancing.
This procedure consumes a lot of processing power and is suitable mainly for well-known simple protocols such as hypertext transfer protocol (HTTP) and file transfer protocol (FTP). The method usually inserts a delay into the transactions and involves redundant communication processing. The existing methods are not suitable for managing load-balancing and fail-over procedure of remote procedure call (RPC), storage traffic, database traffic, and heavy traffic loads. In case of a failure, the procedure of a rollback and retransmit to another machine may not be available. Moreover, when the communication is disconnected, there is no knowledge which parts of the intended traffic have reached the destination prior to the disconnection.
There is a demand for efficient high-availability content filtering technologies having better performances and using less central processing unit (CPU) resources.
It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.